865D - Buy Low Sell High - CodeForces Solution


constructive algorithms data structures greedy *2400

Please click on ads to support us..

Python Code:

from heapq import*
input()
s,h=0,[]
for v in map(int,input().split()):
	heappush(h,v)
	if v>h[0]:s+=v-heapreplace(h,v)
print(s)

C++ Code:

#include<bits/stdc++.h>
using namespace std;

int n,p[300005];
priority_queue<int,vector<int>,greater<int>> q;
long long ans;

int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>p[i];
    }
    for(int i=1;i<=n;i++){
        if(!q.empty() && q.top()<p[i]){
            ans+=(p[i]-q.top());
            q.pop();
            q.push(p[i]);
        }
        q.push(p[i]);
    }
    cout<<ans<<endl;
    return 0;
}


Comments

Submit
0 Comments
More Questions

136. Single Number
169. Majority Element
119. Pascal's Triangle II
409. Longest Palindrome
1574A - Regular Bracket Sequences
1574B - Combinatorics Homework
1567A - Domino Disaster
1593A - Elections
1607A - Linear Keyboard
EQUALCOIN Equal Coins
XOREQN Xor Equation
MAKEPAL Weird Palindrome Making
HILLSEQ Hill Sequence
MAXBRIDGE Maximise the bridges
WLDRPL Wildcard Replacement
1221. Split a String in Balanced Strings
1002. Find Common Characters
1602A - Two Subsequences
1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction